1
Упаковка кода на Ruby: Экосистема гемов
AI035Lesson 9
00:00

Экосистема RubyGems является ответом Ruby на хаотическую «проблему зависимостей» традиционного управления библиотеками. Вместо перезаписи файлов в общей глобальной директории, RubyGems использует архитектурную изоляцию.

1. Рантайм-магия

В отличие от стандартных библиотек, каждая версия гема хранится в своей собственной изолированной директории. Когда вы вызываете gem 'имя', 'версия', RubyGems выполняет «рантайм-магию»: динамически добавляет путь к каталогу lib этого конкретного гема в глобальный массив $LOAD_PATH глобального массива.

BlueCloth 0.0.4BlueCloth 0.5.5$LOAD_PATHgem 'BlueCloth', '>=0.5.5'

2. Разрешение зависимостей и репозитории

Хотя локальная установка локальная установка может завершиться неудачей, если отсутствует зависимость, удалённая установка (с использованием --remote) автоматически загружает полный дерево зависимостей из центрального репозитория, обеспечивая, что ограничения версий будут удовлетворены до начала выполнения.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>